{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RUL prediction using boosting\n",
    "\n",
    "In this notebook, we will apply boosting to predict RUL of NASA's turbofan engine dataset FD004. To implement boosting, we will use [XGBoost](https://xgboost.readthedocs.io/en/latest/index.html) library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import xgboost as xgb\n",
    "\n",
    "from sklearn.metrics import mean_squared_error\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(483)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# print(\"Numpy version: \", np.__version__)\n",
    "# print(\"Pandas version: \", pd.__version__)\n",
    "# print(\"XGBoost version: \", xgb.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Preprocessing\n",
    "\n",
    "We strongly encourage readers to go through the [dataset description and prreprocessing notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_data_description_and_preprocessing.ipynb). In that notebook we have explained how data preprocessing functions work with simple examples. In this notebook we will only use those functions. So prior familiarity with these functions is an advantage. Below are the parameters that we will use for data preprocessing:\n",
    "\n",
    "* Degradation model: Linear\n",
    "* Early RUL: None\n",
    "* Window length: 1\n",
    "* Shift: 1\n",
    "* Data scaling: No (Tree based methods don't require data scaling)\n",
    "\n",
    "We will calculate two prediction scores on test data. In one case, we will take last 5 examples of test data for engine, calculate their predictions, and finally average those for each engine. In the second case, we will take only the last example of each engine and make predictions. The logic behind taking last 5 examples and averaging their predictions is to make the prediction robust against outliers. Due to some external factor, if our last example happens to be corrupted, its prediction outcome might be far off from the actual one. But if we average predictions from last 5 examples, we will get a more conservative estimate. \n",
    "\n",
    "In the following cell we will show boxplots of each column of training data. That will give us an idea about the values in different columns. If all the values in a column are constant, we drop those columns from our analysis.\n",
    "\n",
    "Readers can download the data from [here](https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/#turbofan). In the following cells, wherever data are read from a folder, readers should change the string to point to the respective folder from their system to run this notebook seamlessly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x1512 with 21 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/train_FD004.txt\", sep= \"\\s+\", header = None)\n",
    "plt.figure(figsize = (16, 21))\n",
    "for i in range(21):\n",
    "    temp_data = train_data.iloc[:,i+5]\n",
    "    plt.subplot(7,3,i+1)\n",
    "    plt.boxplot(temp_data)\n",
    "plt.show()\n",
    "\n",
    "def process_targets(data_length, early_rul = None):\n",
    "    \"\"\" \n",
    "    Takes datalength and earlyrul as input and \n",
    "    creates target rul.\n",
    "    \"\"\"\n",
    "    if early_rul == None:\n",
    "        return np.arange(data_length-1, -1, -1)\n",
    "    else:\n",
    "        early_rul_duration = data_length - early_rul\n",
    "        if early_rul_duration <= 0:\n",
    "            return np.arange(data_length-1, -1, -1)\n",
    "        else:\n",
    "            return np.append(early_rul*np.ones(shape = (early_rul_duration,)), np.arange(early_rul-1, -1, -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_input_data_with_targets(input_data, target_data = None, window_length = 1, shift = 1):\n",
    "    \"\"\"Depending on values of window_length and shift, this function generates batchs of data and targets \n",
    "    from input_data and target_data.\n",
    "    \n",
    "    Number of batches = np.floor((len(input_data) - window_length)/shift) + 1\n",
    "    \n",
    "    **We don't check input dimensions uisng exception handling. So readers should be careful while using these\n",
    "    functions. If input data are not of desired dimension, either error occurs or something undesirable is \n",
    "    produced as output.**\n",
    "    \n",
    "    Arguments:\n",
    "        input_data: input data to function (Must be 2 dimensional)\n",
    "        target_data: input rul values (Must be 1D array)s\n",
    "        window_length: window length of data\n",
    "        shift: Distance by which the window moves for next batch. This is closely related to overlap\n",
    "               between data. For example, if window length is 30 and shift is 1, there is an overlap of \n",
    "               29 data points between two consecutive batches.\n",
    "        \n",
    "    \"\"\"\n",
    "    num_batches = np.int(np.floor((len(input_data) - window_length)/shift)) + 1\n",
    "    num_features = input_data.shape[1]\n",
    "    output_data = np.repeat(np.nan, repeats = num_batches * window_length * num_features).reshape(num_batches, window_length,\n",
    "                                                                                                  num_features)\n",
    "    if target_data is None:\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "        return output_data\n",
    "    else:\n",
    "        output_targets = np.repeat(np.nan, repeats = num_batches)\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "            output_targets[batch] = target_data[(shift*batch + (window_length-1))]\n",
    "        return output_data, output_targets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_test_data(test_data_for_an_engine, window_length, shift, num_test_windows = 1):\n",
    "    \"\"\" This function takes test data for an engine as first input. The next two inputs\n",
    "    window_length and shift are same as other functins. \n",
    "    \n",
    "    Finally it takes num_test_windows as the last input. num_test_windows sets how many examplles we\n",
    "    want from test data (from last). By default it extracts only the last example.\n",
    "    \n",
    "    The function return last examples and number of last examples (a scaler) as output. \n",
    "    We need the second output later. If we are extracting more than 1 last examples, we have to \n",
    "    average their prediction results. The second scaler halps us do just that.\n",
    "    \"\"\"\n",
    "    max_num_test_batches = np.int(np.floor((len(test_data_for_an_engine) - window_length)/shift)) + 1\n",
    "    if max_num_test_batches < num_test_windows:\n",
    "        required_len = (max_num_test_batches -1)* shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, max_num_test_batches\n",
    "    else:\n",
    "        required_len = (num_test_windows - 1) * shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, num_test_windows"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed trianing data shape:  (60994, 1, 21)\n",
      "Processed training ruls shape:  (60994,)\n",
      "Processed test data shape:  (1240, 1, 21)\n",
      "True RUL shape:  (248,)\n"
     ]
    }
   ],
   "source": [
    "test_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/test_FD004.txt\", sep = \"\\s+\", header = None)\n",
    "true_rul = pd.read_csv('/home/biswajit/data/cmapss_data/RUL_FD004.txt', sep = '\\s+', header = None)\n",
    "\n",
    "window_length = 1\n",
    "shift = 1\n",
    "early_rul = None          \n",
    "processed_train_data = []\n",
    "processed_train_targets = []\n",
    "\n",
    "# How many test windows to take for each engine. If set to 1 (this is the default), only last window of test data for \n",
    "# each engine are taken. If set to a different number, that many windows from last are taken. \n",
    "# Final output is the average of output of all windows.\n",
    "num_test_windows = 5     \n",
    "processed_test_data = []\n",
    "num_test_windows_list = []\n",
    "\n",
    "columns_to_be_dropped = [0,1,2,3,4]\n",
    "\n",
    "num_machines = np.min([len(train_data[0].unique()), len(test_data[0].unique())])\n",
    "\n",
    "for i in np.arange(1, num_machines + 1):\n",
    "    \n",
    "    temp_train_data = train_data[train_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    temp_test_data = test_data[test_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from both training and test data\n",
    "    if (len(temp_test_data) < window_length):\n",
    "        print(\"Test engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    elif (len(temp_train_data) < window_length):\n",
    "        print(\"Train engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    \n",
    "    temp_train_targets = process_targets(data_length = temp_train_data.shape[0], early_rul = early_rul)\n",
    "    data_for_a_machine, targets_for_a_machine = process_input_data_with_targets(temp_train_data, temp_train_targets, \n",
    "                                                                                window_length = window_length, shift = shift)\n",
    "    \n",
    "    # Prepare test data\n",
    "    test_data_for_an_engine, num_windows = process_test_data(temp_test_data, window_length = window_length, shift = shift,\n",
    "                                                             num_test_windows = num_test_windows)\n",
    "    \n",
    "    processed_train_data.append(data_for_a_machine)\n",
    "    processed_train_targets.append(targets_for_a_machine)\n",
    "    \n",
    "    processed_test_data.append(test_data_for_an_engine)\n",
    "    num_test_windows_list.append(num_windows)\n",
    "\n",
    "processed_train_data = np.concatenate(processed_train_data)\n",
    "processed_train_targets = np.concatenate(processed_train_targets)\n",
    "processed_test_data = np.concatenate(processed_test_data)\n",
    "true_rul = true_rul[0].values\n",
    "\n",
    "# Shuffle data\n",
    "index = np.random.permutation(len(processed_train_targets))\n",
    "processed_train_data, processed_train_targets = processed_train_data[index], processed_train_targets[index]\n",
    "\n",
    "print(\"Processed trianing data shape: \", processed_train_data.shape)\n",
    "print(\"Processed training ruls shape: \", processed_train_targets.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "print(\"True RUL shape: \", true_rul.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed train data shape:  (60994, 21)\n",
      "Processed test data shape:  (1240, 21)\n"
     ]
    }
   ],
   "source": [
    "processed_train_data = processed_train_data.reshape(-1, processed_train_data.shape[2])\n",
    "processed_test_data = processed_test_data.reshape(-1, processed_test_data.shape[2])\n",
    "print(\"Processed train data shape: \", processed_train_data.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "\n",
    "dtrain = xgb.DMatrix(processed_train_data, label = processed_train_targets)\n",
    "dtest = xgb.DMatrix(processed_test_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tTrain-rmse:70.96343\n",
      "[100]\tTrain-rmse:53.97013\n",
      "[200]\tTrain-rmse:51.76934\n",
      "[300]\tTrain-rmse:49.75226\n",
      "[400]\tTrain-rmse:48.22978\n",
      "[499]\tTrain-rmse:46.78409\n"
     ]
    }
   ],
   "source": [
    "num_rounds = 500\n",
    "params = {\"max_depth\":3, \"learning_rate\":1, \"objective\":\"reg:squarederror\"}\n",
    "bst = xgb.train(params, dtrain, num_boost_round = num_rounds, evals = [(dtrain, \"Train\")], verbose_eval = 100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE:  40.55145936841974\n"
     ]
    }
   ],
   "source": [
    "rul_pred = bst.predict(dtest)\n",
    "\n",
    "# First split predictions according to number of windows of each engine\n",
    "preds_for_each_engine = np.split(rul_pred, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                             for ruls_for_each_engine, num_windows in zip(preds_for_each_engine, num_test_windows_list)]\n",
    "RMSE = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine))\n",
    "print(\"RMSE: \", RMSE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With somewhat arbitrary choice of hyperparameters, we obtained an RMSE value of 40.55. But can we do better? To find out better values of hyperparameters, we can do a principled hyperparameter tuning. There are different ways to do hyperparameter search. Here, we will use simple grid search. \n",
    "\n",
    "In grid search, we first define a grid of parameters. Then for each set of parameters, we will fit a 10 xgboost models (as it is 10 fold cross validation). Finally we will average the result of all folds for a particular parameter choice. The parameter choice that gives best score for cross validation is chosen as the best hyperparameter.\n",
    "\n",
    "Grid search of hyperparameters (with cross validation) is computationally intensive. It might take a long time on a personal computer. If that is the case, readers are advised to comment the next cell and directly use the best hyperparameter values as done in subsequent cells."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "max_depth: 2, eta: 0.01\n",
      "RMSE: 65.2876015 in 500 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.1\n",
      "RMSE: 57.15250060000001 in 500 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.3\n",
      "RMSE: 56.041097300000004 in 500 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.5\n",
      "RMSE: 56.177741600000004 in 410 rounds\n",
      "\n",
      "max_depth: 2, eta: 1.0\n",
      "RMSE: 56.9642209 in 217 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.01\n",
      "RMSE: 61.4584244 in 500 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.1\n",
      "RMSE: 55.56937640000001 in 500 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.3\n",
      "RMSE: 55.68766599999999 in 243 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.5\n",
      "RMSE: 56.078749499999994 in 151 rounds\n",
      "\n",
      "max_depth: 3, eta: 1.0\n",
      "RMSE: 57.380843199999994 in 76 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.01\n",
      "RMSE: 58.867626800000004 in 500 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.1\n",
      "RMSE: 55.2431285 in 436 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.3\n",
      "RMSE: 55.6143607 in 102 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.5\n",
      "RMSE: 56.2901414 in 61 rounds\n",
      "\n",
      "max_depth: 4, eta: 1.0\n",
      "RMSE: 57.73983989999999 in 29 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.01\n",
      "RMSE: 57.098031500000005 in 500 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.1\n",
      "RMSE: 55.171211099999994 in 367 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.3\n",
      "RMSE: 55.6230994 in 79 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.5\n",
      "RMSE: 56.2458439 in 36 rounds\n",
      "\n",
      "max_depth: 5, eta: 1.0\n",
      "RMSE: 58.038641 in 18 rounds\n",
      "\n",
      "Best parameters are: Max_depth= 5, eta= 0.1, num_rounds = 367. Corresponding RMSE: 55.171211099999994\n"
     ]
    }
   ],
   "source": [
    "param_grid = [(max_depth, eta) for max_depth in np.arange(2,6) for eta in np.array([0.01, 0.1, 0.3, 0.5, 1])]\n",
    "\n",
    "min_rmse = np.inf\n",
    "best_params = None\n",
    "params = dict()\n",
    "params[\"objective\"] = \"reg:squarederror\"\n",
    "for max_depth, eta in param_grid:\n",
    "    print(\"max_depth: {}, eta: {}\".format(max_depth, eta))\n",
    "    \n",
    "    params[\"max_depth\"] = max_depth\n",
    "    params[\"eta\"] = eta\n",
    "    \n",
    "    cv_res = xgb.cv(params, dtrain, num_boost_round= num_rounds, early_stopping_rounds= 10, nfold = 10, seed = 137)\n",
    "    \n",
    "    best_rmse_val = cv_res[\"test-rmse-mean\"].min()\n",
    "    best_num_rounds = cv_res[\"test-rmse-mean\"].argmin() + 1\n",
    "    \n",
    "    print(\"RMSE: {} in {} rounds\".format(best_rmse_val, best_num_rounds))\n",
    "    print()\n",
    "    \n",
    "    if best_rmse_val < min_rmse:\n",
    "        min_rmse = best_rmse_val\n",
    "        best_params = (max_depth, eta, best_num_rounds)\n",
    "        \n",
    "print(\"Best parameters are: Max_depth= {}, eta= {}, num_rounds = {}. Corresponding RMSE: {}\".format(best_params[0],\n",
    "                                                                                                    best_params[1],\n",
    "                                                                                                    best_params[2],\n",
    "                                                                                                    min_rmse))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will use the best parameters to train the final regressor. The `num_boost_round` value obtained above is the best value for cross validation. We can take a value that is different from the above number but not very far from it. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE after hyperparameter tuning:  40.34903710908769\n"
     ]
    }
   ],
   "source": [
    "params_tuned = {\"max_depth\":5, \"eta\":0.1, \"objective\":\"reg:squarederror\"}\n",
    "bst_tuned = xgb.train(params_tuned, dtrain, num_boost_round= 500)\n",
    "\n",
    "rul_pred_tuned = bst_tuned.predict(dtest)\n",
    "\n",
    "preds_for_each_engine_tuned = np.split(rul_pred_tuned, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine_tuned = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                                   for ruls_for_each_engine, num_windows in zip(preds_for_each_engine_tuned,\n",
    "                                                                                num_test_windows_list)]\n",
    "RMSE_tuned = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine_tuned))\n",
    "print(\"RMSE after hyperparameter tuning: \", RMSE_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using only the last example."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE (Taking only last examples):  42.2970811894257\n"
     ]
    }
   ],
   "source": [
    "indices_of_last_examples = np.cumsum(num_test_windows_list) - 1\n",
    "preds_for_last_example = np.concatenate(preds_for_each_engine_tuned)[indices_of_last_examples]\n",
    "\n",
    "RMSE_new = np.sqrt(mean_squared_error(true_rul, preds_for_last_example))\n",
    "print(\"RMSE (Taking only last examples): \", RMSE_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Downside of having access to full test set\n",
    "\n",
    "If we have access to full test set, to improve our score on test set, we can tune our algorithm so that it performs well on test set. **However, it should be noted that this is not the right way to train an algorithm.** Test set should be used only once (after model fine tuning) to predict our algorithm's generalization performance. **Test set should never be used to tune hyperparameters of our model.** If we tune our algorithm using test set, it might predict well on that set but there is no guarantee that it will generalize well for yet unseen data. \n",
    "\n",
    "To demonstrate the effect, in the cell below we have used some hyperparameters that gives considerably better results than that obtained by cross validation. How did I find those hyperparameters? As the full test set was available, I tried a few parameters using full test set and chose one that gave relatively better result. **I repeat this is just a hack (a poor one) to improve performance using test set.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE after hyperparameter tuning:  30.62104863374631\n"
     ]
    }
   ],
   "source": [
    "params_tuned = {\"max_depth\":5, \"eta\":0.01, \"objective\":\"reg:squarederror\"}\n",
    "bst_tuned = xgb.train(params_tuned, dtrain, num_boost_round= 150)\n",
    "\n",
    "rul_pred_tuned = bst_tuned.predict(dtest)\n",
    "\n",
    "preds_for_each_engine_tuned = np.split(rul_pred_tuned, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine_tuned = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                                   for ruls_for_each_engine, num_windows in zip(preds_for_each_engine_tuned,\n",
    "                                                                                num_test_windows_list)]\n",
    "RMSE_tuned = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine_tuned))\n",
    "print(\"RMSE after hyperparameter tuning: \", RMSE_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that while prediction, we are predicting RUL values for last 5 examples of every engine. Then we take mean of all 5 predictions for each engine and calculate final RMSE.\n",
    "\n",
    "If instead we wish to take only the last example of every engine to make predictions and calculate RUL, we can do so by taking the last prediction of every engine as calculated before and calcutate RMSE as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([   4,    9,   14,   19,   24,   29,   34,   39,   44,   49,   54,\n",
       "         59,   64,   69,   74,   79,   84,   89,   94,   99,  104,  109,\n",
       "        114,  119,  124,  129,  134,  139,  144,  149,  154,  159,  164,\n",
       "        169,  174,  179,  184,  189,  194,  199,  204,  209,  214,  219,\n",
       "        224,  229,  234,  239,  244,  249,  254,  259,  264,  269,  274,\n",
       "        279,  284,  289,  294,  299,  304,  309,  314,  319,  324,  329,\n",
       "        334,  339,  344,  349,  354,  359,  364,  369,  374,  379,  384,\n",
       "        389,  394,  399,  404,  409,  414,  419,  424,  429,  434,  439,\n",
       "        444,  449,  454,  459,  464,  469,  474,  479,  484,  489,  494,\n",
       "        499,  504,  509,  514,  519,  524,  529,  534,  539,  544,  549,\n",
       "        554,  559,  564,  569,  574,  579,  584,  589,  594,  599,  604,\n",
       "        609,  614,  619,  624,  629,  634,  639,  644,  649,  654,  659,\n",
       "        664,  669,  674,  679,  684,  689,  694,  699,  704,  709,  714,\n",
       "        719,  724,  729,  734,  739,  744,  749,  754,  759,  764,  769,\n",
       "        774,  779,  784,  789,  794,  799,  804,  809,  814,  819,  824,\n",
       "        829,  834,  839,  844,  849,  854,  859,  864,  869,  874,  879,\n",
       "        884,  889,  894,  899,  904,  909,  914,  919,  924,  929,  934,\n",
       "        939,  944,  949,  954,  959,  964,  969,  974,  979,  984,  989,\n",
       "        994,  999, 1004, 1009, 1014, 1019, 1024, 1029, 1034, 1039, 1044,\n",
       "       1049, 1054, 1059, 1064, 1069, 1074, 1079, 1084, 1089, 1094, 1099,\n",
       "       1104, 1109, 1114, 1119, 1124, 1129, 1134, 1139, 1144, 1149, 1154,\n",
       "       1159, 1164, 1169, 1174, 1179, 1184, 1189, 1194, 1199, 1204, 1209,\n",
       "       1214, 1219, 1224, 1229, 1234, 1239])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "indices_of_last_examples = np.cumsum(num_test_windows_list) - 1\n",
    "indices_of_last_examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE (Taking only last examples):  33.08111069764484\n"
     ]
    }
   ],
   "source": [
    "preds_for_last_example = np.concatenate(preds_for_each_engine_tuned)[indices_of_last_examples]\n",
    "\n",
    "RMSE_new = np.sqrt(mean_squared_error(true_rul, preds_for_last_example))\n",
    "print(\"RMSE (Taking only last examples): \", RMSE_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you are not convinced by above calculations, take a look at the last section of [this notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_FD001_xgboost_piecewise_linear_degradation_model.ipynb)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For CMAPSS data, along with RMSE another metric (S-score) is usually reported in literature. S-score is defined as:\n",
    "\n",
    "$$S= \\sum_{i=1}^N{s_i}$$\n",
    "\n",
    "where, \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "    s_i=\n",
    "    \\begin{cases}\n",
    "      (e^{-\\frac{d_i}{13}})-1, & \\text{for}\\ d_i < 1 \\\\\n",
    "      (e^{\\frac{d_i}{10}})-1, & \\text{for}\\ d_i \\geq 1\\\\\n",
    "    \\end{cases}\n",
    "  \\end{equation}\n",
    "  $$\n",
    "  \n",
    "We can compute the S-metric as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_s_score(rul_true, rul_pred):\n",
    "    \"\"\"\n",
    "    Both rul_true and rul_pred should be 1D numpy arrays.\n",
    "    \"\"\"\n",
    "    diff = rul_pred - rul_true\n",
    "    return np.sum(np.where(diff < 0, np.exp(-diff/13)-1, np.exp(diff/10)-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "S-score:  19587.837340101498\n"
     ]
    }
   ],
   "source": [
    "s_score = compute_s_score(true_rul, preds_for_last_example)\n",
    "print(\"S-score: \", s_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot true and predicted RUL values\n",
    "plt.plot(true_rul, label = \"True RUL\", color = \"red\")\n",
    "plt.plot(preds_for_last_example, label = \"Pred RUL\", color = \"blue\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also plot variable importance score."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:title={'center':'Feature importance'}, xlabel='F score', ylabel='Features'>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xgb.plot_importance(bst_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As a final note remember that hyperparameter tuning is more of an art than science. It is possible to obtain better results than what has been obtained here by choosing better set of hyperparameters.\n",
    "\n",
    "For other reproducible results on RUL, interested readers can visit my [project page](https://biswajitsahoo1111.github.io/rul_codes_open). "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf_cpu_23",
   "language": "python",
   "name": "tf_cpu_23"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
